Developing complex systems involves various problem-solving and incremental design steps. The aim is to construct a solution that satisfies the customer's requirements. Two types of requirements are generally differentiated: functional and non-functional requirements. The functional requirements relate to the functionalities that the system must provide. The non-functional requirements relate to the parameters of the system, such as performance, safety, integrity and availability.
The V cycle is a conventional system development method defining a succession of steps ranging from the definition of the system to its validation. A V cycle, as illustrated in FIG. 1, applied to the design of a system comprising an application comprising software components and an architecture comprising hardware components on which said application is run comprises the following steps.
The functional analysis step 11 is used to obtain a breakdown of the functional need relating to said application. The definition of the architecture 12 defines the basic building blocks of the system, their arrangement and how they are coordinated. The next two steps consist in designing the hardware components 13 defined by said architecture and the software components 14 based on the breakdown of the functional need. Integrating the software components in the hardware components 15 consists in assembling all the individual components developed in the preceding steps to form the system. The next step is to validate the functional requirements 16. The step for validating the non-functional requirements 17 occurs at the end of the development cycle.
This type of development method does not give total satisfaction because there is no way of guaranteeing from the system analysis and design phases that the system will predictably meet the non-functional requirements. Observations concerning this type of requirement are made in the system validation phase with risks, and very often modification costs, having a greater or lesser impact on the product.
One solution is to use functional simulation. Then, as early as the system design phase, an assessment is made of the non-functional characteristics of the system based on the creation of a model simultaneously describing the application and its implementation on a runtime platform. However, the necessary simulation model may prove very narrow and very costly to develop. Such a solution is not economically viable when it is applied to a complex system.
The invention seeks to overcome the abovementioned problems by modifying the system analysis and design method and by introducing an additional upstream step for validating the non-functional requirements making it possible to pre-validate the correct design of the system by exploiting architectural rules. By using the invention, it is possible to prove from the first phases of the development cycle that the design of the system is correct in light of the non-functional requirements. The invention therefore makes it possible to optimize the system design costs by detecting at the earliest possible stage any errors concerning the non-functional requirements and by exploiting architectural rules.